package org.sdfc.model.attr.key

import com.documentum.fc.common.IDfId
import com.documentum.fc.common.IDfTime

import org.sdfc.model.attr._

/** Specialisation of KeyAttribute for SingleAttribute.
 */
abstract class KSingleAttribute[+T] (name : String)
extends KeyAttribute[T](name) with SingleAttribute[T] {
  
}


/** Specialisation of KeyAttribute for SingleBooleanAttribute.
 */
final class KSingleBooleanAttribute (name : String)
extends KSingleAttribute[Boolean](name) with SingleBooleanAttribute {
  
}

/** Specialisation of KeyAttribute for SingleIntAttribute.
 */
final class KSingleIntAttribute (name : String)
extends KSingleAttribute[Int](name) with SingleIntAttribute {
  
}

/** Specialisation of KeyAttribute for SingleStringAttribute.
 */
final class KSingleStringAttribute (name : String)
extends KSingleAttribute[String](name) with SingleStringAttribute {
  
}

/** Specialisation of KeyAttribute for SingleIdAttribute.
 */
final class KSingleIdAttribute (name : String)
extends KSingleAttribute[IDfId](name) with SingleIdAttribute {
  
}

/** Specialisation of KeyAttribute for SingleTimeAttribute.
 */
final class KSingleTimeAttribute (name : String)
extends KSingleAttribute[IDfTime](name) with SingleTimeAttribute {
  
}

/** Specialisation of KeyAttribute for SingleDoubleAttribute.
 */
final class KSingleDoubleAttribute (name : String)
extends KSingleAttribute[Double](name) with SingleDoubleAttribute {
  
}